Side-by-side shared calendars

ABSTRACT

Methods and systems are provided for presenting a plurality of shared calendars in a single electronic display frame or window where each of the plurality of shared calendars is displayed in a common view mode relative to other displayed shared calendars. Users may select one or more shared calendars to be displayed in the same display frame or window as their own calendar. Upon selection of a shared calendar to be displayed alongside a first calendar, an aggregate view object is called to control and coordinate all shared calendars selected for display in the common window or frame. The aggregate view object determines the view data object, including view mode (hourly, daily, weekly, monthly) and other calendar display settings of the first or active calendar displayed in the common view of shared calendars.

FIELD OF THE INVENTION

[0001] The present invention relates to methods and systems for creatingand simultaneously displaying multiple shared electronic calendars inside-by-side orientation.

BACKGROUND OF THE INVENTION

[0002] Since the advent of the computer and software age, softwaredevelopers have attempted to provide helpful functionality to softwareusers that provide useful information in a contextual nature. One usefulapplication is the electronic calendaring application where users mayenter and view appointments and other scheduling data in an electroniccalendar viewable on their computer display. Electronic calendars allowusers to view calendar information in a variety of different modes suchas hourly, daily, weekly, monthly, and the like, or portions of days,weeks, or months.

[0003] One useful aspect of electronic calendaring systems is theability of users to share calendaring information across a distributedcomputing environment with other electronic calendar users. That is, oneuser may give permission to a number of other users to view his or herpersonal or business electronic calendar data. Accordingly, the firstuser may select a desired calendar of a friend or colleague and displaythe selected calendar using the first user's calendar application.Often, a user may wish to compare her calendar data to another user'scalendar data to determine whether the second user is available for ameeting at a desired date and time period. In order to comparecalendars, users must toggle between two or more calendars, or users mayopen two calendar windows on the same display. Unfortunately, becausethe second or other calendar may be presented in a different mode, forexample, daily, weekly, monthly, etc., the first user has a difficult orunfriendly user experience at best.

[0004] Accordingly, there is a need for a method and system forpresenting multiple shared calendars in a single common display windowor frame where the multiple shared calendars are presented in commonviews and display modes. There is further a need for a method and systemfor allowing quick and efficient addition and removal of sharedcalendars from the multiple calendar view. It is with respect to theseand other considerations that the present invention has been made.

SUMMARY OF THE INVENTION

[0005] Embodiments of the present invention provide methods and systemsfor presenting a plurality of shared calendars in a single electronicdisplay frame or window where each of the plurality of shared calendarsis displayed in a common view mode relative to other displayed sharedcalendars. According to an aspect of the invention, users may select oneor more shared calendars to be displayed in the same display frame orwindow as their own calendar. Upon selection of a shared calendar to bedisplayed alongside a first calendar, an aggregate view object is calledto control and coordinate all shared calendars selected for display in acommon window or frame. The aggregate view object determines the viewdata object, including view mode (hourly, daily, weekly, monthly) andother calendar display settings of the first or active calendardisplayed in the common view of shared calendars.

[0006] The aggregate view determines the available display space fordisplaying the first calendar plus selected additional shared calendars.The aggregate view determines the size and location for any selectedincoming shared calendar. The aggregate view calls each selected sharedcalendar for displaying in the common view of shared calendars. Theaggregate view next provides each called shared calendar with the viewdata object of the first calendar in order to display each sharedcalendar in the same view mode and settings as the first calendar. Theaggregate view also provides each selected shared calendar with alocation and size of display.

[0007] Once each selected shared calendar is called by the aggregateview, each selected shared calendar is displayed in a common view frameor window in side-by-side orientation where each displayed sharedcalendar is displayed in the same view mode (hourly, daily, weekly,monthly, etc.). Each date or time position of each displayed sharedcalendar is aligned with corresponding date or time positions of otherdisplayed shared calendars.

[0008] According to one aspect of the invention, selection of any of theone or more displayed shared calendars establishes the selected calendaras the active calendar. If view mode or other display settings arechanged in the active calendar, the aggregate view object causes thechanges in the view mode or other display settings of the activecalendar to be made to all displayed shared calendars in order to keepall shared calendars in a common view mode and with common displaysettings.

[0009] According to another aspect, navigation controls such as timebars and scroll bars are constructed by the aggregate view object forone of the plurality of displayed shared calendars to control alldisplayed shared calendars simultaneously so that, for example,scrolling one shared calendar scrolls all shared calendarssimultaneously. Utilization of any controls or tools of the hostcalendaring application is applied to each displayed shared calendar.

[0010] According to another aspect of the invention, a navigation paneis provided including a date selection control and a shared calendarselection control. Selection of a date from the date selection controldisplays the selected date for all displayed shared calendarssimultaneously. Selection of an additional shared calendar from theshared calendar selection control causes the aggregate view object tocall the selected additional shared calendar to display the selectedadditional shared calendar along with presently displayed sharedcalendars. Likewise, deletion of a shared calendar from the selecteddisplayed shared calendars causes the aggregate view object to dismissthe deleted calendar. Addition or deletion of a shared calendar resultsin resizing and repositioning of remaining or resulting shared calendarsby the aggregate view object to utilize all available display space.

[0011] These and other features and advantages, which characterize thepresent invention, will be apparent from a reading of the followingdetailed description and a review of the associated drawings. It is tobe understood that both the foregoing general description and thefollowing detailed description are exemplary and explanatory only andare not restrictive of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012]FIG. 1 is a block diagram showing the architecture of a personalcomputer that provides an illustrative operating environment forembodiments of the present invention.

[0013]FIG. 2 is a simplified block diagram illustrating a relationshipbetween a host calendar application, an aggregate view object and aplurality of selected shared calendars.

[0014]FIG. 3 illustrates a computer screen display showing an exemplaryelectronic calendar display showing the display of three sharedcalendars in a single and common display frame.

[0015]FIG. 4 is a computer screen display illustrating selection ofother shared calendars for display in a common view of shared calendars.

[0016]FIG. 5 is a computer screen display showing an actions menu ofactions that may be applied to selected dates or times in a givenelectronic calendar.

[0017]FIG. 6 is a computer screen display of a print function dialogaccording to an embodiment of the present invention.

[0018]FIGS. 7, 8, 9 and 10 are flow diagrams showing an illustrativeroutine for creating and displaying a common view of shared electroniccalendars.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0019] As briefly described above, embodiments of the present inventionare directed to methods and systems for simultaneously displaying aplurality of shared electronic calendars in a single application windowor frame where each displayed calendar is displayed in a common viewmode in side-by-side orientation relative to each other. In thefollowing detailed description, references are made to the accompanyingdrawings that form a part hereof, and in which are shown by way ofillustrations specific embodiments or examples. These embodiments may becombined, other embodiments may be utilized, and structural changes maybe made without departing from the spirit or scope of the presentinvention. The following detailed description is therefore not to betaken in a limiting sense and the scope of the present invention isdefined by the appended claims and their equivalents.

[0020] Referring now to the drawings, in which like numerals representlike elements or components throughout the several figures, aspects ofthe present invention and the exemplary operating environment will bedescribed. FIG. 1 and the following discussion are intended to provide abrief, general description of a suitable computing environment in whichthe invention may be implemented. While the invention will be describedin the general context of an application program that runs on anoperating system in conjunction with a personal computer, those skilledin the art will recognize that the invention also may be implemented incombination with other program modules. Generally, program modulesinclude routines, programs, components, data structures, etc. thatperform particular tasks or implement particular abstract data types.Moreover, those skilled in the art will appreciate that the inventionmay be practiced with other computer system configurations, includinghand-held devices, multiprocessor systems, microprocessor-based orprogrammable consumer electronics, cell phones, minicomputers, mainframecomputers, and the like. The invention may also be practiced indistributed computing environments where tasks are performed by remoteprocessing devices that are linked through a communications network. Ina distributed computing environment, program modules may be located inboth local and remote memory storage devices.

[0021] With reference to FIG. 1, an exemplary system for implementingthe invention includes a conventional personal computer 20, including aprocessing unit 21, a system memory 22, and a system bus 23 that couplesthe system memory to the processing unit 21. The system memory 22includes read-only memory (ROM) 24 and random access memory (RAM) 25. Abasic input/output system 26 (BIOS), containing the basic routines thathelp to transfer information between elements within the personalcomputer 20, such as during start-up, is stored in ROM 24. The personalcomputer 20 further includes a hard disk drive 27, a magnetic disk drive28, e.g., to read from or write to a removable disk 29, and an opticaldisk drive 30, e.g., for reading a CD-ROM disk 31 or to read from orwrite to other optical media. The hard disk drive 27, magnetic diskdrive 28, and optical disk drive 30 are connected to the system bus 23by a hard disk drive interface 32, a magnetic disk drive interface 33,and an optical drive interface 34, respectively. The drives and theirassociated computer-readable media provide non-volatile storage for thepersonal computer 20. Although the description of computer-readablemedia above refers to a hard disk, a removable magnetic disk and aCD-ROM disk, it should be appreciated by those skilled in the art thatother types of media which are readable by a computer, such as magneticcassettes, flash memory cards, digital video disks, Bernoullicartridges, and the like, may also be used in the exemplary operatingenvironment.

[0022] A number of program modules may be stored in the drives and RAM25, including an operating system 35, one or more application programs100, such as a calendar application 200, described below. A wordprocessor program module 37 (or other type of program module), programdata, such as the manifest 38, and other program modules (not shown).

[0023] A user may enter commands and information into the personalcomputer 20 through a keyboard 40 and pointing device, such as a mouse42. Other input devices (not shown) may include a microphone, joystick,game pad, satellite dish, scanner, or the like. These and other inputdevices are often connected to the processing unit 21 through a serialport interface 46 that is coupled to the system bus, but may beconnected by other interfaces, such as a game port or a universal serialbus (USB). A monitor 47 or other type of display device is alsoconnected to the system bus 23 via an interface, such as a video adapter48. In addition to the monitor, personal computers typically includeother peripheral output devices (not shown), such as speakers orprinters.

[0024] The personal computer 20 may operate in a networked environmentusing logical connections to one or more remote computers, such as aremote computer 49. The remote computer 49 may be a server, a router, apeer device or other common network node, and typically includes many orall of the elements described relative to the personal computer 20,although only a memory storage device 50 has been illustrated in FIG. 1.The logical connections depicted in FIG. 1 include a local area network(LAN) 51 and a wide area network (WAN) 52. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet.

[0025] When used in a LAN networking environment, the personal computer20 is connected to the LAN 51 through a network interface 53. When usedin a WAN networking environment, the personal computer 20 typicallyincludes a modem 54 or other means for establishing communications overthe WAN 52, such as the Internet. The modem 54, which may be internal orexternal, is connected to the system bus 23 via the serial portinterface 46. In a networked environment, program modules depictedrelative to the personal computer 20, or portions thereof, may be storedin the remote memory storage device. It will be appreciated that thenetwork connections shown are exemplary and other means of establishinga communications link between the computers may be used.

[0026]FIG. 2 is a simplified block diagram illustrating a relationshipbetween a host calendar application, an aggregate view object and aplurality of selected shared calendars. According to embodiments of thepresent invention, a calendaring application 200, such as Outlook®manufactured by Microsoft Corporation of Redmond, Wash. provides ashared electronic calendar view whereby a plurality of shared electroniccalendars are displayed to the user in a common view mode andside-by-side orientation relative to each other. It should beappreciated that the calendaring application 200 includes sufficientcomputer executable instructions for displaying a graphical userinterface containing desired calendar information. A frame module 210includes computer executable instructions for directing the display ofuser interface information on the user's display screen. For example, ifthe user of the calendaring application 200 selects the display of theuser's calendar, the frame module 210 directs the placement, orientationand display of the calendaring information. Likewise, if the userselects the display of the user's contact information via theapplication 200, the frame module 210 directs the display of contactinformation for the user. In the case of calendar views, the framemodule 210 provides a selected calendar view with an appropriate viewdata object including the view mode of the calendar such as hourly,weekly, daily, monthly, etc. and directs the positioning of other userinterface components such as tool bars, navigation panes, and the like.

[0027] According to an embodiment of the present invention, in additionto directing the display of other views 230, such as contactinformation, the frame module 210 directs the activities of theaggregate view object module 220. As will be described in more detailbelow, the aggregate view module 220 is a software module integratedwith the calendaring application 200 including sufficient computerexecutable instructions for directing the display of multiple selectedsubcalendar views 240, 250, 260 in a single view frame or window inside-by-side orientation. That is, according to embodiments of thepresent invention, a user may select a first calendar view 240, such asthe user's own calendar, followed by selection of a second calendar view250, followed by selection of multiple additional calendars up to Nselected calendars 260. As will be described below with reference toFIG. 3, each selected calendar view is displayed by the aggregate viewmodule 220 in side-by-side orientation in a single view frame or window.

[0028]FIG. 3 illustrates a computer screen display showing an exemplaryelectronic calendar display showing the display of three sharedcalendars in a single and common display frame. As shown in FIG. 3, acalendaring application display frame 215 is illustrated. According toembodiments of the present invention, a plurality of selected calendarviews 240, 250, 260 are displayed in a single view frame or window inside-by-side orientation. Also illustrated in FIG. 3 is the navigationpane 310 including a date selection control 320, a my-calendar selectioncontrol 330 and another calendars selection control 340. A time bar 350is illustrated adjacent to the first calendar 240 and a scroll bar 375is illustrated adjacent to the third calendar view to 260. A backgroundcolor 370 is illustrated for each calendar view 240, 250, 260. A taskpad (not shown) may also be provided for entering tasks applicable to aselected calendar. According to embodiments of the present invention thetask pad accepts tasks for and is otherwise associated with the firstselected calendar from which the view data object is obtained by theaggregate view module 220 for use with subsequently selected calendars.

[0029] Selection of any one of the shared calendars, such as by doubleclicking a mouse focus inside one of the display shared calendars,establishes the selected calendar as the active calendar. Subsequently,changes in the view mode of the active calendar cause like changes inthe view modes of other displayed calendars. For example, if the firstcalendar 240 is established as the active calendar, and the user changesthe first calendar 240 view mode from a single day in hourly incrementsto a weekly calendar, the calendar 240 will be changed to a weekly viewmode, and the other displayed shared calendars 250, 260 will likewise bechanged to a weekly view mode.

[0030] According to embodiments of the present invention, display of theshared calendars 250, 260 alongside the user's calendar 240 displays thedata from those shared calendars under the control of the aggregate viewmodule 220. Changes in the view mode, for example daily, weekly,monthly, etc., and changes in formatting such as font size of displayedcalendaring data only makes those changes in the user's view of sharedcalendars. That is, if the owner of the data of a shared calendar, forexample calendar 260, subsequently opens his or her calendar at his orher computer via a separate calendaring application 200, that user'scalendaring data will be displayed according to the view mode, and otherdisplay settings selected by that user.

[0031] Additionally, date and time positions for each of the displayedshared calendars are kept in aligned orientation. For example, the 10:00a.m. time position for the calendar 240 will be aligned in side-by-sideorientation with the 10:00 a.m. time positions of the other displayedcalendars 250, 260. Manipulation of date and time positions usingcontrols such as the time bar 350 and the scroll bar 375 manipulates alldisplayed calendars 240, 250, 260 simultaneously. That is, scrolling thescroll bar 375 up or down scrolls all display calendars simultaneouslywhile maintaining each date and time position of each displayed calendarin alignment, as described above. Generally, selection of tool barfunctionality or navigation functionality affects all displayedcalendars simultaneously. For example, changes in the font or otherformatting of the active calendar, likewise changes the font or otherformatting of other displayed calendars. Selection of a particular datefrom the date selection control 320 causes the display of the selecteddate in all displayed calendars 240, 250, 260.

[0032] As mentioned above, a my calendars selection control 330 and another calendars selection control 340 are provided. Selection of one ofthe calendars provided in the my calendars selection control 330 causesthe display of the selected calendar. Likewise, selection of one or moreof a plurality of other calendars from the other calendars selectionpane 340 causes the display of the selected calendars. As should beappreciated, the other calendars selection pane my be populated by agiven user with a plurality of calendars of friends, colleagues, orother associates who have given the user permission to display theircalendaring data, as described herein.

[0033] According to an embodiment of the present invention, each viewedcalendar 240, 250, 260 may be displayed with a different backgroundcolor 370 to distinguish displayed calendars. The background coloring370 for the displayed calendars may likewise be utilized in the othercalendars selection pane 340 to provide background coloring for selectedcalendars to provide the user a quick and efficient means foridentifying selected calendars.

[0034] When a user creates an all day event, an all day event banner 360is displayed. The banner appointments show up in an area at the top ofthe daily views, illustrated in FIG. 3. This area is above the time bar350 and does not correspond to a particular time position. Because thebanner area may be enlarged to include a plurality of bannerappointments, enlargement of the banner area for any given selectedcalendar 240, 250, 260 causes a like enlargement of the banner area forall displayed calendars. The aggregate view module 220 inquires of eachcalendar view 240, 250, 260 as to how much space is required for bannerappointments for the selected calendars. The aggregate view module 220then requires space corresponding to the largest amount of requiredbanner appointment space for each of the displayed calendars 240, 250,260.

[0035] Having described a relationship between the calendaringapplication 200, the frame module 210, the aggregate view module 220 andselected calendar views 240, 250, 260 with respect to FIG. 2, and havingdescribed the user interface and other display characteristics of theshared calendar view according to embodiments of the present invention,with respect to FIG. 3, the following is a further discussion of thefunctionality of the aggregate view module 220. As described herein, theaggregate view module 220 hosts the plurality of selected calendar views240, 250, 260. The aggregate view module 220 orchestrates the processesfor creating, displaying, and deleting selected calendar views 240, 250,260. Additionally, the aggregate view module hosts and directs thedisplay of other user interface information including components of thenavigation control 310.

[0036] The aggregate view module 220 coordinates the time bar 350.According to an embodiment of the present invention, selected calendarmay have a time bar 350 if the calendar is in a view mode requiring atime bar. However, because each calendar is synchronized so thatmovement along the time positions of one calendar causes a like movementof time positions for all displayed calendars, the aggregate view module220 displays only one time bar 350 for all displayed calendars 240, 250,260 and hides the time bars that ordinarily would be displayed for eachother displayed calendar 240, 250, 260 if the calendars are in a viewmode requiring a time bar.

[0037] The aggregate view module 220 also coordinates the display of anduse of the scroll bar 375. As with the time bar 350, each displayedcalendar 240, 250, 260 includes a scroll bar 375 according to itsindividual view data object. However, the aggregate view module showsonly one scroll bar 375 for scrolling each of the displayed calendarssimultaneously. The aggregate view module coordinates scrolling amongall calendars. Scrolling can be initiated through a number of means,including use of the scroll bar, a mouse wheel, arrow keys, and thelike. Typically these events are directed to individual calendars 240,250, 260. According to an embodiment of the present invention, if theuser scrolls an individual selected calendar 240, 250, 260, the softwarecode responsible for the individual scrolled calendar communicates thescrolling to the aggregate view module which in turn directs all otherdisplayed calendars 240, 250, 260 to scroll in synchronized movementwith the selected calendar. As described above, selection of aparticular view mode for one selected calendar, such as daily, weekly,monthly, etc. likewise causes each other selected calendar to bedisplayed in the same view mode.

[0038] Additionally, the aggregate view module manages the utilizationof space in the display frame 210 by all selected user interfacecomponents including the displayed calendars, the navigation pane 310,the time bar 350, the scroll bar 375, and the tool bar 380. That is, theaggregate view decides how to divide the visual geometry of the maindisplay frame into the sections for each selected calendar view as wellas other components such as the navigation pane 310, scroll bar 375,time bar 350 and tool bar 380. When the spatial needs require, such aswhen the window or frame is resized by the user, or when an additionalcalendar 240, 250, 260 is added or deleted, the aggregate view module220 resizes and relocates all displayed components appropriately.Accordingly, if the user selects an additional calendar for display sothat the calendar view illustrated in FIG. 3 will include four selectedcalendars, for example, the aggregate view module 220 will determine thespace requirements for displaying the four selected calendars and willresize each selected calendar accordingly to fit each of the fourselected calendars in the common view illustrated in FIG. 3. Likewise,if the user deletes a selected calendar, the aggregate view module 220will expand the remaining selected calendars to fit the available spacein which to display.

[0039] According to embodiments of the present invention, the aggregateview module 220 also routes various messages, notifications, queries,and commands to the appropriate selected calendars 240, 250, 260. Insome cases, a message is only routed to the active calendar 240, 250,260. For example, accessibility messages are sent directly to the activecalendar. Thus, screen readers and other accessibility tools maydetermine what appointments are displayed on the active calendar only.As described above, the user may select another displayed calendar 240,250, 260 as the active calendar as desired. Other types of messages maybe sent to all displayed calendars. For example, as described above, ifglobal display settings changes, such as displayed fonts, display sizes,and other formatting information including system colors are changed,the aggregate view module 220 is notified and in turn directs alldisplayed calendars 240, 250, 260 to make required displayed changes.

[0040]FIG. 4 is a computer screen display illustrating selection ofother shared calendars for display in a common view of shared calendars.As described above with reference to FIG. 3 an other calendars selectioncontrol 340 is provided in the navigation pane 310. In addition to thedisplay of previously selected other calendars in the control 340, another calendars search control 410 may be provided in the control 340.As shown in FIG. 4, the search control 410 allows a user to enter thename of a friend or associate whose calendar information the user wishesto display in the common view of shared calendars. A drop down contactslist 420 may also be provided to allow the user to parse a list ofavailable calendar data for selection by the user. Once the user hasselected an additional calendar for display by the user, a selectioncontrol for that user may be subsequently displayed as illustrated inFIG. 3. Likewise, the user may delete a previously utilized calendarselection control from the control 340 so that the selection control nolonger appears in the control 340 for selection by the user.

[0041]FIG. 5 is a computer screen display showing an actions menu ofactions that may be applied to selected dates or times in a givenelectronic calendar. According to embodiments of the present invention,the user may advantageously view the calendaring data of all selecteddisplayed calendars simultaneously. For example, if the user isinterested in requesting a meeting with two of the users colleagues, theuser may select each of the colleague's calendars 250, 260 for displaynext to the user's calendar 240, as illustrated in FIG. 3. The user maythen select an actions menu 510 as illustrated in FIG. 5 to select avariety of calendaring actions including a new meeting request action520. According to embodiment of the present invention, each of theselected shared calendar owner's names are populated in a control 530 toallow the user to readily select the names associated with each of theselected calendars for the desired action such as the new meetingrequest action 520. If the user selects a name from the control 530, thecalendaring application 200 will open a meeting request formprepopulated with the name of the user and the person selected from thecontrol 530. If the user selects “All,” a meeting request form may becreated prepopulated with the users name and with the names associatedwith all selected shared calendars. It should be appreciated that theuser may view the calendaring data of each selected calendar, but theuser may not write data to the selected other calendars, unless the userhas permission to write to the selected calendar.

[0042]FIG. 6 is a computer screen display of a print function dialogaccording to an embodiment of the present invention. According toembodiment of the present invention, a drop down menu such as the “Printthis calendar” drop down menu 620 may be provided to allow the user toselect for printing any of the selected shared calendars presentlydisplayed by the user.

[0043]FIGS. 7, 8 and 9 are flow diagrams showing an illustrative routinefor creating and displaying a common view of shared electroniccalendars. The method 700 begins at start block 702 and proceeds toblock 704 where a user opens a calendaring application 200, as describedabove. At block 706 the user selects a particular view for opening, suchas a calendar view, contacts view, and the like. At block 710, theapplication frame module 210 controls the display of the view selectedby the user. At block 712 a determination is made as to whether the viewselected by the user is a calendar view. If the view selected by theuser is a non-calendar view, such as a contacts view 230, the methodproceeds to block 716 and the selected view is displayed, and the methodends at block 790. If a calendar view is selected by the user, themethod proceeds to block 720 and the calendar view is displayed ascontrolled by the frame module 210.

[0044] At block 724, the user selects an additional calendar 250, 260for display along with the user's own calendar 240. At block 728, FIG.8, the frame module 210 calls on the aggregate view module 220 tocontrol the display of the plurality of selected calendar views. Atblock 730, the aggregate view module calls the user's calendar and allselected additional calendars. It should be appreciated, that the usermay select for view other calendars, but not select the user's owncalendar. That is, it is not necessary according to embodiments of thepresent invention that the user must first select his or her owncalendar followed by the selection of other calendars. Any combinationof selected calendars may be displayed according to embodiments of thepresent invention if the user has permission to display calendaring dataassociated with the selected calendars.

[0045] At block 734, the aggregate view module provides each selectedcalendar view the controlling view data object. As should be understoodby those skilled in the art, the controlling view data object includesthe view mode, and other display settings of a parent or first selectedcalendar. That is, if the first selected calendar is the user's owncalendar or if the first selected calendar is from the other calendarscontrol, the view data object for the first selected or parent calendaris provided to each additional selected calendar so that each additionalselected calendar will be displayed in a common view mode and commondisplay settings as the first displayed calendar. According toembodiments of the present invention, once a view data object isestablished for all displayed calendars, that view data object ismaintained for displayed calendars even if the first selected or parentcalendar is later deleted from display. Thus, whether a displayedcalendar is deleted or whether an additional calendar is displayed, theview data object of the first selected calendar is passed to all otherselected calendars by the aggregate view module to control display ofother selected calendars.

[0046] At block 738, the aggregate view module 220 determines a displaylocation for each calendar view. At block 744, the aggregate view moduledetermines a size for each calendar view. For example, the firstselected calendar view may require a larger size than subsequentcalendar views if the first calendar view requires additional space fora time bar 350. The remaining available space is divided by theaggregate view module between other selected calendars so that eachselected calendar including the first selected or parent calendarappears to take an equal amount of display space in the frame 215.

[0047] At block 748 the aggregate view module determines the need forand coordinates the use of a time bar a scroll bar. That is, if the viewmode for each of the selected displayed calendars requires the use of atime bar, such as is necessary with a daily or hourly view mode, a timebar 350 is called by the aggregate view module. At block 752, theaggregate view module determines the view mode, a date range and timerange for the active or selected calendar. At block 758, the aggregateview module directs each selected calendar view to display in the windowor frame 215 according to the view data objects, view mode, date range,and time range of the active calendar.

[0048] At block 762, the aggregate view module hosts and directs thedisplay of other user interface components of the frame or window 215,including the navigation pane 310 and the tool bar 380. At block 766,FIG. 10, the user may select any displayed calendar to establish theselected displayed calendar as the active calendar, and the user mayperform an action in the selected calendar. At block 770, the activecalendar view communicates the selected action to the aggregate viewmodule 220. At block 774, the aggregate view module 220 directs anyrequired display changes caused by the user's actions in the activecalendar to be made in all other selected displayed calendars. Themethod ends at block 790.

[0049] As described herein, embodiments of the present invention providemethods and systems for simultaneously displaying a plurality of sharedelectronic calendars in a single application window or frame where eachdisplayed calendar is displayed in a common view mode in side-by-sideorientation relative to each other. It will be apparent to those skilledin the art that various modifications or variations may be made in thepresent invention without departing from the scope or spirit of theinvention. Other embodiments of the invention will be apparent to thoseskilled in the art from consideration of the specification and practiceof the invention disclosed herein.

We claim:
 1. A method for displaying shared electronic calendars,comprising: launching a calendar software application; selecting aplurality of calendars for displaying in a common display view frame;obtaining a view data object for a first selected calendar; calculatingan amount of space of the view frame required for displaying eachselected calendar simultaneously; passing the view data object for thefirst selected calendar to each additional selected calendar; passing toeach selected calendar a position of display in the view frame; passingto each selected calendar a size of display in the view frame; anddisplaying each selected calendar in the view frame simultaneously inside-by-side orientation.
 2. The method of claim 1, in response toselecting a plurality of calendars, calling an aggregate view module fordisplaying the selected plurality of calendars.
 3. The method of claim1, prior to calculating an amount of space of the view frame requiredfor displaying each selected calendar simultaneously, determining a sizeof the view frame available for displaying all selected calendarssimultaneously.
 4. The method of claim 1, prior to passing the view dataobject for the first selected calendar to each additional selectedcalendar, calling each selected calendar by an aggregate view moduleresponsible for displaying all selected calendars simultaneously.
 5. Themethod of claim 1, whereby passing the view data object for the firstselected calendar includes passing a view mode and display settings ofthe first selected calendar to each additional selected calendar.
 6. Themethod of claim 1, whereby passing the view data object for the firstselected calendar includes determining whether the view mode of thefirst selected calendar requires a display of a time bar.
 7. The methodof claim 6, whereby if the display of a time bar is required, displayinga time bar for one of the plurality of displayed calendars, wherebyselection of a particular time position in the time bar displays theselected time position for each displayed calendar simultaneously. 8.The method of claim 1, prior to passing view data object for the firstselected calendar to each additional selected calendar, determiningwhether the view mode of the first selected calendar requires a displayof a scroll bar.
 9. The method of claim 8, whereby if the display of ascroll bar is required, providing a scroll bar for one of the pluralityof displayed calendars, whereby scrolling the scroll bar scrolls alldisplayed calendars simultaneously.
 10. The method of claim 1, wherebydisplaying each selected calendar in the view frame simultaneously inside-by-side orientation includes displaying data associated with eachdisplayed calendar in a particular displayed calendar to which the datais associated.
 11. The method of claim 1, whereby displaying eachselected calendar in the view frame simultaneously in side-by-sideorientation includes displaying each selected calendar such that eachdate or time position of each displayed calendar is aligned withcorresponding date or time positions of each other displayed calendar.12. The method of claim 11, further comprising displaying a dateselection control whereby selection of a date from the date selectioncontrol displays a calendar position of each displayed calendarcorresponding to the selected date simultaneously.
 13. The method ofclaim 1, further comprising: displaying a calendar selection control forselecting one or more calendars for display in the view frame inside-by-side orientation with other calendars presently displayed in theview frame; whereby in response to selection of an additional calendarfor display from the calendar selection control, recalculating an amountof space of the view frame required for displaying each presentlydisplayed calendar plus the selected additional calendar simultaneouslyin side-by-side orientation; passing the view data object of the firstselected calendar to the selected additional calendar; passing a displayposition and display size to all presently displayed calendars and tothe selected additional calendar; and redisplaying all presentlydisplayed calendars plus the selected additional calendar simultaneouslyin side-by-side orientation.
 14. The method of claim 1, furthercomprising providing a distinctive background display color for eachdisplayed calendar to distinguish each displayed calendar from eachother displayed calendar.
 15. The method of claim 1, further comprisingdisplaying a tool bar for providing editing, display, file management,and printing functionality to the displayed calendars.
 16. The method ofclaim 1, further comprising selecting one of the plurality of displayedcalendars as an active calendar; and applying any view mode and displaysettings changes made to the active calendars to all displayedcalendars.
 17. The method of claim 16, whereby applying any view modeand display settings changes made to the active calendar to alldisplayed calendars includes communicating any changes in the view modeand display settings for the active calendar to each of the displayedcalendars.
 18. The method of claim 1, further comprising deleting adisplayed calendar from the view frame.
 19. The method of claim 18,whereby in response to deleting a displayed calendar from the viewframe, recalculating an amount of space of the view frame required fordisplaying each displayed calendar minus the deleted displayed calendar;passing the view data object of the first selected calendar to eachdisplayed calendar minus the deleted displayed calendar; passing adisplay position and display size to all displayed calendars minus thedeleted displayed calendar; and redisplaying all displayed calendarsminus the deleted displayed calendar simultaneously in side-by-sideorientation.
 20. The method of claim 1, further comprising displaying anall day banner appointment position across all displayed calendars. 21.The method of claim 1, further comprising displaying a task pad forentering tasks applicable to the first selected calendar.
 22. A systemfor displaying shared electronic calendars, comprising: a calendarsoftware application operative to call a frame object module fordirecting the display of a selected calendar view; the frame objectmodule operative to call an aggregate view object module for displayinga plurality of calendars in a common display view frame of the selectedcalendar view; the aggregate view object module operative to obtain aview data object for a first selected calendar; to calculate an amountof space of the view frame required for displaying the first selectedcalendar and each of one or more additional selected calendarssimultaneously; to pass the view data object for the first selectedcalendar to each additional selected calendar; to pass to each selectedcalendar a position of display in the view frame; to pass to eachselected calendar a size of display in the view frame; and to displayeach selected calendar in the view frame simultaneously in side-by-sideorientation.
 23. The system of claim 22, whereby the aggregate viewobject module is further operative to display a time bar for one of theplurality of displayed calendars, whereby selection of a particular timeposition in the time bar displays the selected time position for eachdisplayed calendar simultaneously.
 24. The system of claim 22, wherebythe aggregate view object module is further operative to display ascroll bar for one of the plurality of displayed calendars, wherebyscrolling the scroll bar scrolls all displayed calendars simultaneously.25. The system of claim 22, whereby the aggregate view object module isfurther operative to display each selected calendar such that each dateor time position of each displayed calendar is aligned withcorresponding date or time positions of each other displayed calendar.26. The system of claim 22, whereby the aggregate view object module isfurther operative to display a date selection control whereby selectionof a date from the date selection control displays a calendar positionof each displayed calendar corresponding to the selected datesimultaneously.
 27. The system of claim 22, whereby the aggregate viewobject module is further operative: to display a calendar selectioncontrol for selecting one or more calendars for display in the viewframe in side-by-side orientation with other calendars presentlydisplayed in the view frame; to recalculate an amount of space of theview frame required for displaying each presently displayed calendarplus a selected additional calendar simultaneously in side-by-sideorientation in response to selection of an additional calendar fordisplay from the calendar selection control; to pass the view dataobject of the first selected calendar to all presently displayedcalendars plus the selected additional calendar; to pass a displayposition and display size to all presently displayed calendars and tothe selected additional calendar; and to redisplay all presentlydisplayed calendars plus the selected additional calendar simultaneouslyin side-by-side orientation.
 28. The system of claim 22, whereby theaggregate view object module is further operative to provide adistinctive background display color for each displayed calendar todistinguish each displayed calendar from each other displayed calendar.29. The system of claim 22, whereby the aggregate view object module isfurther operative to display a tool bar for providing editing, display,file management, and printing functionality to the displayed calendars.30. The system of claim 22, whereby the aggregate view object module isfurther operative to apply any view mode and display settings changesmade to a selected active calendar to all displayed calendars, wherebyselection of one of the plurality of displayed calendars establishes theselected one of the plurality of displayed calendars as an activecalendar.
 31. The system of claim 22, whereby the aggregate view objectmodule is further operative: to display a calendar selection control fordeleting one or more calendars displayed in the view frame; torecalculate an amount of space of the view frame required for displayingeach presently displayed calendar minus the deleted calendarsimultaneously in side-by-side orientation in response to deletion ofone or more calendars displayed in the view frame; to pass the view dataobject of the first selected calendar to all presently displayedcalendars minus the deleted calendar; to pass a display position anddisplay size to all presently displayed calendars minus deletedcalendar; and to redisplay all presently displayed calendars minus thedeleted calendar simultaneously in side-by-side orientation.
 32. Acomputer readable medium containing instructions which when executed bya computer perform a method for displaying shared electronic calendars,comprising: launching a calendar software application; obtaining a viewdata object for a first selected calendar; calculating an amount ofspace of the view frame required for displaying each of a selectedplurality of calendars simultaneously; passing the view data object forthe first selected calendar to each additional selected calendar of theplurality of calendars; passing to each selected calendar a position ofdisplay in the view frame; passing to each selected calendar a size ofdisplay in the view frame; and displaying each selected calendar in theview frame simultaneously in side-by-side orientation.
 33. The computerreadable medium of claim 32, prior to passing the view data object forthe first selected calendar to each additional selected calendar,calling each selected calendar by an aggregate view module responsiblefor displaying all selected calendars simultaneously.
 34. The computerreadable medium of claim 32, whereby passing the view data object forthe first selected calendar includes passing a view mode and displaysettings of the first selected calendar to each additional selectedcalendar.
 35. The computer readable medium of claim 32, whereby passingthe view data object for the first selected calendar includesdetermining whether the view mode of the first selected calendarrequires a display of a time bar.
 36. The computer readable medium ofclaim 35, whereby if the display of a time bar is required, displaying atime bar for one of the plurality of displayed calendars, wherebyselection of a particular time position in the time bar displays theselected time position for each displayed calendar simultaneously. 37.The computer readable medium of claim 32, prior to passing view dataobject for the first selected calendar to each additional selectedcalendar, determining whether the view mode of the first selectedcalendar requires a display of a scroll bar; and if the display of ascroll bar is required, providing a scroll bar for one of the pluralityof displayed calendars, whereby scrolling the scroll bar scrolls alldisplayed calendars simultaneously.
 38. The computer readable medium ofclaim 32, further comprising displaying a date selection control wherebyselection of a date from the date selection control displays a calendarposition of each displayed calendar corresponding to the selected datesimultaneously.
 39. The computer readable medium of claim 32, furthercomprising: displaying a calendar selection control for selecting one ormore calendars for display in the view frame in side-by-side orientationwith other calendars presently displayed in the view frame; whereby inresponse to selection of an additional calendar for display from thecalendar selection control, recalculating an amount of space of the viewframe required for displaying each presently displayed calendar plus theselected additional calendar simultaneously in side-by-side orientation;passing the view data object of the first selected calendar to theselected additional calendar; passing a display position and displaysize to all presently displayed calendars and to the selected additionalcalendar; and redisplaying all presently displayed calendars plus theselected additional calendar simultaneously in side-by-side orientation.40. The computer readable medium of claim 32, further comprisingreceiving a selection of one of the plurality of displayed calendars asan active calendar; communicating any changes in the view mode anddisplay settings for the active calendar to each of the displayedcalendars; and applying any view mode and display settings changes madeto the active calendars to all displayed calendars.
 41. The computerreadable medium of claim 1, further comprising receiving a deletion of adisplayed calendar from the view frame; in response to receiving thedeletion of a displayed calendar from the view frame, recalculating anamount of space of the view frame required for displaying each displayedcalendar minus the deleted displayed calendar; passing the view dataobject of the first selected calendar to each displayed calendar minusthe deleted displayed calendar; passing a display position and displaysize to all displayed calendars minus the deleted displayed calendar;and redisplaying all displayed calendars minus the deleted displayedcalendar simultaneously in side-by-side orientation.